import Vue from 'vue'
import App from './App'
import zp from './utils/zpui.js'

import panel from '@/components/zp/layout/panel/panel'
import listCell from '@/components/zp/layout/list/cell'
import grid from '@/components/zp/layout/grid/grid'
import card from '@/components/zp/layout/card/card'
import zButton from '@/components/zp/form/button/button'
import zInput from '@/components/zp/form/input/input'
import inputNumbel from '@/components/zp/form/input/input-number'
import zRadio from '@/components/zp/form/radio/radio'
import zCheckout from '@/components/zp/form/checkout/checkout'
import rate from '@/components/zp/form/rate/rate'
import rateStatic from '@/components/zp/form/rate/rate-static'
import message from '@/components/zp/feedback/message/message'
import loading from '@/components/zp/feedback/loading/loading'
import swipeout from '@/components/zp/feedback/swipeout/swipeout'
import longpress from '@/components/zp/feedback/longpress/longpress'
import zPicker from '@/components/zp/form/picker/picker'
import pickerLinkage from '@/components/zp/form/picker/picker-linkage'
import headerCustom from '@/components/zp/navigation/header/header'
import dropdown from '@/components/zp/navigation/dropdown/dropdown'
import tabbar from '@/components/zp/navigation/tabbar/tabbar'
import badge from '@/components/zp/viewer/badge/badge'
import tabs from '@/components/zp/navigation/tabs/tabs'
import tabsScrollX from '@/components/zp/navigation/tabs/tabs-scroll-x'
import sticker from '@/components/zp/navigation/sticker/sticker'
import scrollY from '@/components/zp/navigation/scrolly/scrolly'
import drawer from '@/components/zp/navigation/drawer/drawer'
import zIndex from '@/components/zp/navigation/zindex/zindex'
import avatar from '@/components/zp/viewer/avatar/avatar'
import tag from '@/components/zp/viewer/tag/tag'
Vue.component('panel', panel)
Vue.component('list-cell', listCell)
Vue.component('grid', grid)
Vue.component('card', card)
Vue.component('z-button', zButton)
Vue.component('z-input', zInput)
Vue.component('input-number', inputNumbel)
Vue.component('z-radio', zRadio)
Vue.component('z-checkout', zCheckout)
Vue.component('rate', rate)
Vue.component('rate-static', rateStatic)
Vue.component('message', message)
Vue.component('loading', loading)
Vue.component('swipeout', swipeout)
Vue.component('longpress', longpress)
Vue.component('z-picker', zPicker)
Vue.component('picker-linkage', pickerLinkage)
Vue.component('header-custom', headerCustom)
Vue.component('dropdown', dropdown)
Vue.component('tabbar', tabbar)
Vue.component('badge', badge)
Vue.component('tabs', tabs)
Vue.component('tabs-scroll-x', tabsScrollX)
Vue.component('sticker', sticker)
Vue.component('scroll-y', scrollY)
Vue.component('drawer', drawer)
Vue.component('z-index', zIndex)
Vue.component('avatar', avatar)
Vue.component('tag', tag)

Vue.prototype.$systemInfo = zp.getSystemInfo()
Vue.prototype.$zp = Object.assign({}, zp.data, zp.methods)

Vue.config.productionTip = false
App.mpType = 'app'

const app = new Vue({
    ...App
})
app.$mount()
